home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / video / fly8111-.000 / fly8111- / fly8 / ogtarget.c < prev    next >
C/C++ Source or Header  |  1979-12-31  |  1KB  |  69 lines

  1. /* --------------------------------- ogtarget.c ----------------------------- */
  2.  
  3. /* This is part of the flight simulator 'fly8'.
  4.  * Author: Eyal Lebedinsky (eyal@ise.canberra.edu.au).
  5. */
  6.  
  7. /* object: ground target.
  8. */
  9.  
  10. #include "fly.h"
  11.  
  12.  
  13. #define SRATE    10
  14.  
  15. static SHAPE shape_gtarget = {
  16.     0,
  17.     0,
  18.     SH_BEHIT,
  19.     10000*1000L,    /* weight */
  20.     0        /* drag */
  21. };
  22.  
  23. LOCAL_FUNC int FAR
  24. create_gtarget (OBJECT *p)
  25. {
  26.     p->color = CC_WHITE;
  27.     p->time = FOREVER;
  28.     p->damage = 10;
  29.     p->damaging = 1;
  30.     p->flags |= F_VISIBLE|F_EXPORTED;
  31.     p->R[X] = (Frand () % 10000 - 5000)*(long)VONE;
  32.     p->R[Y] = (Frand () % 10000 - 5000)*(long)VONE;
  33.     Mident (p->T);
  34.     return (0);
  35. }
  36.  
  37. LOCAL_FUNC void FAR
  38. dynamics_gtarget (OBJECT *p, int interval)
  39. {
  40.     int    n;
  41.  
  42.     if (p->damage < 10 && (st.flags1 & SF_SMOKE)) {
  43.         n = 10 - p->damage;
  44.         for (n = TADJ (n); n-- > 0;)
  45.             create_object (O_SMOKE, 1);
  46.         if (p->flags & F_HIT)
  47.             p->color = (p->time/(TIMEPSEC/10))&1
  48.                         ? ST_FIRE2 : ST_FIRE1;
  49.     }
  50.     object_update (p, interval);
  51. }
  52.  
  53. #undef CLIFE
  54. #undef SLIFE
  55. #undef SRATE
  56.  
  57. BODY FAR BoGtarget = {
  58.     0,
  59.     0,
  60.     "GTARGET",
  61.     &shape_gtarget,
  62.     gen_read,
  63.     gen_term,
  64.     create_gtarget,
  65.     gen_delete,
  66.     dynamics_gtarget,
  67.     gen_hit
  68. };
  69.